package model_response

import "go-admin/internal/model"

type ListDictItemResponse struct {
	CommonId
	Label    string `json:"label"`    // 字典选项标题
	Value    string `json:"value"`    // 字典选项值
	Sort     int64  `json:"sort"`     // 排序
	IsBanned string `json:"isBanned"` // 是否禁用
	CommonCreatedOn
}

type DictItemDetail struct {
	CommonId
	Label    string `json:"label"`    // 字典选项标题
	Value    string `json:"value"`    // 字典选项值
	Sort     int64  `json:"sort"`     // 排序
	IsBanned string `json:"isBanned"` // 是否禁用
	Remark   string `json:"remark"`   // 备注
}

type DictItemKV struct {
	Label string `json:"label"` // 字典选项标题
	Value string `json:"value"` // 字典选项值
}

func ModelToListDictItemRes(models []*model.DictItem) []*ListDictItemResponse {
	var list []*ListDictItemResponse
	for _, m := range models {
		l := ListDictItemResponse{
			CommonId:        CommonId{m.Id},
			Label:           m.Label,
			Value:           m.Value,
			Sort:            m.Sort,
			IsBanned:        m.IsBanned,
			CommonCreatedOn: CommonCreatedOn{CreatedOn: m.CreatedOn},
		}
		list = append(list, &l)
	}
	return list
}

// 模型转详情结构体
func ModelToDetailDictItemRes(model *model.DictItem) *DictItemDetail {
	dictItem := &DictItemDetail{
		CommonId: CommonId{Id: model.Id},
		Label:    model.Label,
		Value:    model.Value,
		Sort:     model.Sort,
		IsBanned: model.IsBanned,
		Remark:   model.Remark,
	}
	return dictItem
}

// 模型转详情结构体
func ModelToDictItemKVRes(models []*model.DictItem) []*DictItemKV {
	var kvs []*DictItemKV
	for _, m := range models {
		kv := &DictItemKV{
			Label: m.Label,
			Value: m.Value,
		}
		kvs = append(kvs, kv)
	}
	return kvs
}
